/* 
 * File:   AuthService.h
 * Author: nahuel
 *
 * Created on June 5, 2013, 8:20 PM
 */

#ifndef AUTHSERVICE_H
#define	AUTHSERVICE_H

#include <string>
#include "server_Sesion.h"
#include "server_IMensajero.h"
#include "server_IMensajeEntranteManejador.h"
#include "server_Proceso.h"
#include "server_Service.h"

using namespace std;
using namespace TP::Comunicacion;
using namespace TP::Comunicacion::Eventos;
using namespace TP::Servicios;

namespace TP { namespace Servicios {

class AuthService : public Service, public IMensajeEntranteManejador {
    private:
        const static std::string _dbPath;
        Sesion* _sesion;
        
        void autenticarUsuario(IMensajero* pMensajero, vector<string> &pComando);
        
    public:
        AuthService(Sesion* sesion);
        
        void Iniciar() throw (Excepcion&);
        void Finalizar() throw (Excepcion&);
        void mensajeEntranteManejador (IMensajero* pMensajero, const string& pMensaje);
        
        virtual ~AuthService();
};

}}

#endif	/* AUTHSERVICE_H */

